Zip for UWP
高レベル:C1ZipFile、C1ZipEntry、および C1ZipEntryCollection クラス
Zip の基本 > 高レベル:C1ZipFile、C1ZipEntry、および C1ZipEntryCollection クラス

これらは、C1Zip ライブラリで最も高いレベルのクラスです。このレベルのクラスを使用して、zip ファイルを作成および管理することができます。zip ファイルを使用してアプリケーションデータを保存することには、次の利点があります。

C1ZipFile クラス

C1ZipFile クラスは、zip ファイルをカプセル化します。C1ZipFile オブジェクトを作成したら、そのオブジェクトを既存の zip ファイルにアタッチしたり、そのオブジェクトに基づいて空の zip ファイルを新しく作成することができます。

次のコードは、sources.zip という名前の zip ファイルを作成し、"cs" という拡張子を持つすべてのファイルをその zip ファイルに追加します。

C#
コードのコピー
// 圧縮するファイルが格納されているフォルダを選択します。
 var folderPicker = new FolderPicker();
 folderPicker.FileTypeFilter.Add("*");
 var folder = await folderPicker.PickSingleFolderAsync();

 // zip ファイルの保存先を指定します。
 var saveFile = new FileSavePicker();
 saveFile.SuggestedFileName = "source";
 saveFile.FileTypeChoices.Add("zip ファイル", new string[] { ".zip" });
 saveFile.DefaultFileExtension = ".zip";
 var fileStorage = await saveFile.PickSaveFileAsync();
 var writeStream = await fileStorage.OpenStreamForWriteAsync();

 // zip ファイルを作成します。
 var zip = new C1.C1Zip.C1ZipFile();
 zip.Create(writeStream);

 // cs 拡張子を持つすべてのファイルを zip ファイルに追加します。
 foreach (var file in await folder.GetFilesAsync())
 {
    if (Path.GetExtension(file.Name).Equals(".cs", StringComparison.OrdinalIgnoreCase))
    {
       var fileStream = await file.OpenStreamForReadAsync();
       zip.Entries.Add(fileStream, file.Name, file.DateCreated.DateTime);
    }
 }
 // 結果を表示します。
 foreach (var ze in zip.Entries)
    Debug.WriteLine("{0} {1:#,##0} {2:#,##0}", ze.FileName, ze.SizeUncompressed, ze.SizeCompressed);

C1ZipEntryCollection クラス

zip ファイルを作成または開いた後、Entries コレクションを使用して、zip ファイルの内容を調べたり、エントリの追加、展開、および削除を行います。次に例を示します。

Visual Basic
コードのコピー
myZip.Entries.Add(stream1, "MyData.txt")
myZip.Entries.Add(stream2, "MyData.xml")
Dim zipEntry As C1ZipEntry
For Each zipEntry In myZip.Entries
    Console.WriteLine(zipEntry.FileName)
Next zipEntry
C#
コードのコピー
myZip.Entries.Add(stream1, "MyData.txt");
myZip.Entries.Add(stream2, "MyData.doc");
foreach (C1ZipEntry zipEntry in myZip.Entries)
    Debug.WriteLine(zipEntry.FileName);

C1ZipEntry クラス

C1ZipEntry クラスは、各エントリについて説明するプロパティとメソッドを公開します。たとえば、エントリの元のファイル名、サイズ、圧縮サイズなどです。また、このクラスには、ストリームオブジェクトを返す OpenReader メソッドが含まれているため、エントリを展開しなくても内容を読み取ることができます。

関連トピック